home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 26.zip / BS1 part 26 / AMOS compiler.adf / Examples / Amosteroids_II.AMOS / Amosteroids_II.amosSourceCode next >
AMOS Source Code  |  1991-06-13  |  6KB  |  241 lines

  1. '
  2. ' AMOSTEROIDS II By Gary Symons    
  3. ' (c) Europress Software Ltd.
  4. '
  5. X=Execall(-132)
  6. Dim X(31),Y(31)
  7. Sam Bank 4
  8. Screen Open 0,320,200,16,Lowres
  9. Hide 
  10. Cls 0
  11. Double Buffer 
  12. Screen Open 1,640,8,2,Hires
  13. Colour 1,$FFF
  14. Curs Off 
  15. Wait Vbl 
  16. Set Rainbow 1,1,16,"(1,-2,8)","(1,-2,8)","(1,-2,8)"
  17. Rainbow 1,1,Y Hard(1,1),9
  18. Do 
  19.    Screen 1
  20.    Colour 1,$FFF
  21.    View 
  22.    Print 
  23.    Print 
  24.    Centre "Amosteroids II (C) Copyright Gary Symons 1991."
  25.    Wait 100
  26.    Print 
  27.    Centre "Both Mouse Keys To Exit During Game!"
  28.    Wait 100
  29.    Print 
  30.    If Mouse Key=2
  31.       Print 
  32.       Centre "Amosteroids II (C) G. Symons 1991."
  33.       Wait 200
  34.       Print 
  35.       F=Fast Free : C=Chip Free : T=F+C
  36.       F$=" Fast:"+Str$(F)+" "+Hex$(F,8)
  37.       F$=F$+" Chip:"+Str$(C)+" "+Hex$(C,8)
  38.       F$=F$+" Total:"+Str$(T)+" "+Hex$(T,8)
  39.       Centre F$
  40.       Repeat : Until Mouse Key=0
  41.    End If 
  42.    Print 
  43.    Locate 0,0
  44.    Centre "AMOSTEROIDS II By Gary Symons"
  45.    E=100
  46.    S=0
  47.    Locate 0,0
  48.    Print "Energy:";
  49.    Inverse On 
  50.    Print Space$(E/7);
  51.    Inverse Off 
  52.    Print " ";
  53.    Locate 62,0
  54.    Print "Score:";S;
  55.    Screen 0
  56.    Paper 0 : Pen 1 : Clw 
  57.    Curs Off : Flash Off : Wait Vbl 
  58.    Fade 1
  59.    Wait 16
  60.    View 
  61.    For I=0 To 15 : Set Bob I,1,, : Channel I To Bob I : Next I
  62.    A$=""
  63.    A$=A$+"LR8=X*RF;LR9=Y*RF;"
  64.    A$=A$+"A:P;LR8=R8+RX;LR9=R9+RY;LX=R8/RF;LY=R9/RF;"
  65.    A$=A$+"IX+16>0JB;LX=334;LR8=X*RF;LR9=R9/RF+R5;LR9=R9>200*200+R9*RF;B:"
  66.    A$=A$+"IX-16<320JC;LX=0-14;LR8=X*RF;LR9=R9/RF-R5;LR1=R9<0*200;LR9=R9-R1*RF;C:"
  67.    A$=A$+"IY+16>0JD;LY=214;LR9=Y*RF;LR8=R8/RF-R5;LR1=R8<0*320;LR8=R8-R1*RF;D:"
  68.    A$=A$+"IY-16<200JE;LY=0-14;LR9=Y*RF;LR8=R8/RF+R5;LR1=R8>320*320;LR8=R8+R1*RF;E:"
  69.    A$=A$+"JA"
  70.    '
  71.    For I=0 To 3
  72.       Bob I,Rnd(320),Rnd(200),$70
  73.       Amal I,A$
  74.       Amreg(I,5)=Rnd(320)
  75.    Next I
  76.    Bob 4,160,100,1
  77.    A$=""
  78.    A$=A$+"LX=160;LY=100;LRA=0;LRC=0;"
  79.    A$=A$+"A:P;"
  80.    A$=A$+"IRC=0JB;FR0=$50T$59:LA=R0;P;P;P;P;NR0;E:P;JE;B:"
  81.    A$=A$+"LR1=J1&4=4;LRA=J1&8=8+RA-R1;"
  82.    A$=A$+"LRA=RA&31;LR2=J1&1=1;LA=RA+RA+1-R2;"
  83.    A$=A$+"JA;"
  84.    '
  85.    Amal 4,A$
  86.    A$="O:FR0=0TZ(15);NR0;A0,($44,5)($43,5)($42,5)($41,5);LR1=Z(3);"
  87.    A$=A$+"M:LRF=16;"
  88.    A$=A$+"LR8=Z(3)-1;LR8=Z(512)=512*2*R8+R8;"
  89.    A$=A$+"LR9=Z(3)-1;LR9=Z(1)=0*2*R9+R9;"
  90.    A$=A$+"IR9=0JM;IR8=0JM;"
  91.    A$=A$+"LR7=0;LR4=X*RF;LR5=Y*RF;LR8=R8*RF;LR9=R9*RF;"
  92.    A$=A$+"A:P;IR7<>0JQ;"
  93.    A$=A$+"LR4=R8*RZ/7+R4+RX;LR5=R9*RZ/7+R5+RY;"
  94.    A$=A$+"LX=R4/RF;IX+8>0JB;LX=328;LR4=X*RF;B:IX<329JC;LX=7;LR4=X*RF;C:"
  95.    A$=A$+"LY=R5/RF;IY+8>0JD;LY=208;LR5=Y*RF;D:IY<209JE;LY=7;LR5=Y*RF;E:"
  96.    A$=A$+"JA;"
  97.    A$=A$+"Q:A1,($45,1);FR0=$45T$4F;LA=R0;P;P;NR0;LY=Z(127)+Z(63);LX=-34;"
  98.    A$=A$+"JO;"
  99.    '
  100.    For I=5 To 9
  101.       Bob I,Rnd(320),Rnd(200),$41
  102.       Amal I,A$
  103.    Next I
  104.    Bob 10,-50,100,$5B
  105.    A$="AU(LRM=X;LRN=Y;LR3=R3+1&31;IR3<>0X;"
  106.    A$=A$+"LR5=Z(15);LR5=Z(1)=1*R5*2+R5;X)"
  107.    A$=A$+"A:FR0=0T200;LA=$5B;LX=0-50;LY=207;NR0;IZ(127)>100JA;"
  108.    A$=A$+"LY=Z(63)+70;"
  109.    A$=A$+"LX=-20;LR4=2;IZ(127)<63JN;"
  110.    A$=A$+"LX=340;LR4=0-2;N:"
  111.    A$=A$+"LR7=0;LR8=X*RF;LR9=Y*RF;"
  112.    A$=A$+"A0,($5B,10)($5C,10)($5D,10)($5E,10)($5F,10)($60,10)($61,10)($62,10);"
  113.    A$=A$+"M:LR8=R4*RF+R8+RX;LR9=R5*2+R9+RY;"
  114.    A$=A$+"LX=R8/RF;LY=R9/RF;IR7<>0JB;P;IX>340JA;IX+25<0JA;IY>208JA;IY+25<0JA;JM;"
  115.    A$=A$+"B:A1,($63,1);P;P;FR0=$63T$6E;LA=R0;P;P;NR0;JA;"
  116.    '
  117.    Amal 10,A$
  118.    Bob 11,-50,100,$6F
  119.    A$=""
  120.    A$=A$+"A:LR7=0;LA=$6F;LX=0-32;P;IRM<0JA;LX=RM;LY=RN;LR4=Z(15)+1;LR5=Z(15)+1;"
  121.    A$=A$+"LR4=Z(1)=1*2*R4+R4;"
  122.    A$=A$+"LR5=Z(1)=1*2*R5+R5;"
  123.    A$=A$+"LR8=X*RF;LR9=Y*RF;"
  124.    A$=A$+"M:LR8=R4*4+R8+RX;LR9=R5*4+R9+RY;"
  125.    A$=A$+"LX=R8/RF;LY=R9/RF;IR7<>0JB;P;IX>310JA;IX+25<0JA;IY>208JA;IY+25<0JA;JM;"
  126.    A$=A$+"B:FR0=$46T$4F;LA=R0;P;P;NR0;JA;"
  127.    '
  128.    Amal 11,A$
  129.    A$="AU(IR2=0X;LR2=0;DA)"
  130.    A$=A$+"A:LX=-16;LY=-16;P;IRC=1JA;IRS<>R0JA;B:P;IJ1&16=0JB;"
  131.    A$=A$+"LX=160;LY=100;LR8=0-RJ*3;LR9=0-RK*3;LR4=X*RF;LR5=Y*RF;LRW=1;"
  132.    A$=A$+"FR1=0T10;LR4=R4+R8+RX;LR5=R5+R9+RY;LX=R4/RF;LY=R5/RF;NR1;"
  133.    A$=A$+"LRS=RS+1;IRS<16JC;LRS=12;C:"
  134.    A$=A$+"FR1=0T40;LR4=R4+R8+RX;LR5=R5+R9+RY;LX=R4/RF;LY=R5/RF;NR1;"
  135.    A$=A$+"JA;"
  136.    '
  137.    For I=12 To 15
  138.       Bob I,-16,-16,$5A
  139.       Amal I,A$
  140.       Amreg(I,0)=I
  141.    Next I
  142.    T=8*3
  143.    Degree 
  144.    For I=0 To 31
  145.       X(I)=Cos(((31-I+9)*360)/32)*16
  146.       Y(I)=Sin(((31-I+9)*360)/32)*16
  147.    Next I
  148.    For I=0 To 25 : Amreg(I)=0 : Next I
  149.    Amreg(5)=16
  150.    Amreg(18)=12
  151.    Amal On 
  152.    Fade 5 To -1
  153.    For I=0 To 5*16
  154.       View 
  155.       Wait Vbl 
  156.    Next I
  157.    Screen 1
  158.    Timer=0
  159.    Noise To %11
  160.    Repeat 
  161.       If Jup(1) Then Play %11,20,0
  162.       Amreg(9)=X(Amreg(0))
  163.       Amreg(10)=Y(Amreg(0))
  164.       Amreg(25)=Timer/1500+1
  165.       If Amreg(23)>-T and Amreg(23)<T and Amreg(24)>-T and Amreg(24)<T and Jup(1)
  166.          Amreg(23)=Amreg(23)+X(Amreg(0))
  167.          Amreg(24)=Amreg(24)+Y(Amreg(0))
  168.       Else 
  169.          Inc D
  170.          If D and 1
  171.             Amreg(23)=(Amreg(23)*7)/8
  172.             Amreg(24)=(Amreg(24)*7)/8
  173.          End If 
  174.       End If 
  175.       If Amreg(22)=1 Then Sam Play %1100,5,7000 : Amreg(22)=0
  176.       If Bob Col(4,5 To 11)
  177.          Dec E : Boom 
  178.          For I=5 To 11 : Amreg(I,7)=Col(I) : Next I
  179.       End If 
  180.       For MISSILE=12 To 15
  181.          If Bob Col(MISSILE,5 To 11)
  182.             Amreg(MISSILE,2)=1
  183.             Boom 
  184.             For I=5 To 11
  185.                Amreg(I,7)=Col(I)
  186.                If I=10 and Col(I) : Add S,1000 : End If 
  187.             Next I
  188.             Add S,(Timer/500+1)*10
  189.          End If 
  190.       Next MISSILE
  191.       Locate 0,0
  192.       Print "Energy:";
  193.       Inverse On 
  194.       Print Space$(E/7);
  195.       Inverse Off 
  196.       Print " ";
  197.       Locate 62,0
  198.       Print "Score:";S;
  199.    Until E/7=0 or Mouse Key=3
  200.    Sam Play 5
  201.    Amreg(2)=1
  202.    For I=12 To 15 : Bob Off I : Next I
  203.    Exit If Mouse Key=3
  204.    F=0
  205.    Timer=0
  206.    Repeat 
  207.       Locate 19,0 : Print " GAME";
  208.       Locate 55,0 : Print "OVER";
  209.       Wait 20
  210.       Locate 19,0 : Print "     ";
  211.       Locate 55,0 : Print "    ";
  212.       Wait 20
  213.       If Timer>100
  214.          Locate 19,0 : Print "PRESS";
  215.          Locate 55,0 : Print "FIRE";
  216.          Wait 20
  217.          Locate 19,0 : Print "     ";
  218.          Locate 55,0 : Print "    ";
  219.          Wait 20
  220.          F=Fire(1)
  221.       End If 
  222.    Until F
  223.    Screen 0
  224.    Fade 5
  225.    For I=0 To 5*16
  226.       View 
  227.       Wait Vbl 
  228.    Next I
  229.    Bob Off : Wait 10
  230.    Amal Off : Wait 10
  231. Loop 
  232. Screen 0
  233. Wait 70
  234. Fade 5
  235. For I=0 To 5*16
  236.    View 
  237.    Wait Vbl 
  238. Next I
  239. X=Execall(-138)
  240. End 
  241. '